/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package gov.decea.projects.sgq.api;

import gov.decea.projects.sgq.model.Aerodromo;
import gov.decea.projects.sgq.model.MetarGroupData;
import gov.decea.projects.sgq.model.MeteorologicalReportGroupData;
import gov.decea.projects.sgq.model.TafGroupData;
import java.util.Date;
import java.util.List;

/**
 *
 * @author fernandofot
 */
public interface MainService {

    public Long createMeteorologicalReportGroupData(MeteorologicalReportGroupData groupData);

    public void updateMeteorologicalReportGroupData(MeteorologicalReportGroupData groupData);

    public void removeMeteorologicalReportGroupData(Long usuarioId);

    public MeteorologicalReportGroupData findMeteorologicalReportGroupData(Long groupDataId);

    public List<MetarGroupData> findAllMetar(Long organizacaoId, Long aerodromoId, Date periodo);

    public List<TafGroupData> findAllTaf(Long organizacaoId, Long aerodromoId, Date periodo);

    public List<MetarGroupData> findAllMetar(List<Long> organizacoesIds, List<Long> aerodromosIds, List<Date> periodos);

    public List<TafGroupData> findAllTaf(List<Long> organizacoesIds, List<Long> aerodromosIds, List<Date> periodos);

    public Long createAerodromo(Aerodromo aerodromo);

    public void updateAerodromo(Aerodromo aerodromo);

    public void removeAerodromo(Long id);

    public Aerodromo findAerodromo(Long id);

    public Aerodromo findAerodromoBySigla(String sigla);

    public List<Aerodromo> findAllAerodromos();

    public List<Aerodromo> findAllAerodromos(Long organizacaoId);

    public List<Aerodromo> searchAerodromos(String term);
}
